wpfmvvm框架哪个好(WPF与winform哪个比较好)

您所在的位置:网站首页 wpf mvc框架 wpfmvvm框架哪个好(WPF与winform哪个比较好)

wpfmvvm框架哪个好(WPF与winform哪个比较好)

2023-03-28 06:04| 来源: 网络整理| 查看: 265

本文目录WPF与winform哪个比较好wpf和winform(C#) 有什么区别吗MVVM常见框架有哪些哪个好用简单浅谈MVC,MVP,MVVM架构模式的区别和联系之类的软件是用Winform写好还是用WPF写好学什么框架最好,wpf,qt还是wtl等等,最流行那个那个用人最多关于WPF mvvm的一些问题MvvmLight和Prism哪个框架用的人多一些,或者说更好一点WPF与winform哪个比较好

WPF将Windows表示层发展至用声明式语言进行开发,并且融入大量的动画和特效,使得在Win32中极难做到的富客户端应用能在WPF中信手拈来,同时用矢量图取代位图,引入路由事件(RoutedEvent)对元素树进行多层监听,通过依赖属性(DependencyProperty)动态变更控件树等。在WinForm程序开发时,一旦涉及多线程操作,我们一般不可能没有见过InvalidOperationException这个异常。这个异常的出现多数情况是由于worker线程(子线程)修改主线程控件(或对象)的属性而导致的非法操作,当然这种做法也非每次都会失败,这主要取决于子线程想要操作的对象是不是线程安全的。 WinForm控件提供了InvokeRequired属性来判断当前线程是不是创建此控件的线程。一旦控件创建完成,那么InvokeRequired的效率将会不错,且也能保证安全。不过若是目标控件尚未被创建(此时,虽然C#对象已经存在,不过其底层的窗口句柄仍旧为null),那么InvokeRequired则可能会耗费比较长的时间。(它会从下至上遍历整个控件树,直到找到一个可以承载此控件且已经实例化并被创建了的父控件,这种做法可以保证子控件将会与父控件在同一个线程上创建。找到合适的父控件之后,框架即可执行同样的检查,比较当前线程的ID和创建该父控件的线程的ID。)。若是框架无法找到任何一个已创建的父窗体,那么则需要找到一些其他类型的窗体。若在层次体系中无法找到可用的窗体,那么框架将开始寻找暂存窗体(parking window),暂存窗体让你不会被某些Win32 API奇怪的行为所干扰。简而言之,有些对窗体的修改(例如修改某些样式)需要销毁并重新创建该窗体。暂存窗体就是用来在父窗体被销毁并重新创建的过程中用来临时保存其中的控件的。在这段时间内,UI线程仅运行于暂存窗体中。通常,WPF 应用程序从两个线程开始:一个用于处理呈现,一个用于管理 UI。呈现线程有效地隐藏在后台运行,而 UI 线程则接收输入、处理事件、绘制屏幕以及运行应用程序代码。WPF为Windows Presentation Foundation的缩写 ,其原来代号为“Avalon”,因“我佩服”拼音首字母组合一样,国内有人调侃地称之为“我佩服”。WPF是微软新一代图形系统,运行在.NET Framework 3.0架构下,为用户界面、2D/3D 图形、文档和媒体提供了统一的描述和操作方法。基于DirectX 9/10技术的WPF不仅带来了前所未有的3D界面,而且其图形向量渲染引擎也大大改进了传统的2D界面,比如Vista中的半透明效果的窗体等都得益于WPF。 程序员在WPF的帮助下,要开发出媲美Mac程序的酷炫界面已不再是遥不可及的奢望。 WPF相对于Windows客户端的开发来说,向前跨出了巨大的一步,它提供了超丰富的.NET UI 框架,集成了矢量图形,丰富的流动文字支持flow text support,3D视觉效果和强大无比的控件模型框架。

wpf和winform(C#) 有什么区别吗

对于用户来说,是一样的。wpf使用新的开发框架,简化了原来的winform的控件开发模型。简单的说wpf就是用近似Web开发的方式来进行winform开发。

MVVM常见框架有哪些哪个好用简单

国内用的比较多的就是 augular.js backbone这两个Backbone.js——优点:强大的社区,强劲的势头;缺点:抽象较弱,很多功能亟待增加。SproutCore——优点:对绑定的支持,可靠的社区,大量特性;缺点:过度规范,难以和不需要的特性解耦。Sammy.js——优点:易于学习,更容易和现存的服务端应用程序整合;缺点:过于简单,无法应用于大型应用程序中。Spine.js——优点:轻量级,文档很完备;缺点:它的核心概念“spine”是异步的用户界面,这意味着理想状况用户界面永远不会发生堵塞,而这个基础有缺陷。Cappuccino——优点:大型深思熟虑后的框架,良好的社区,很棒的继承模型;缺点:由iOS开发者创建,使用JavaScript模拟Objective-C。Knockout.js——优点:对绑定的支持,完备的文档和教程;缺点:绑定语法拙劣,缺少统一的视图组件层级关系。Javascript MVC——优点:可靠的社区;缺点:基于字符串的继承模型很差,控制器与视图关系过密而缺少绑定。GWT(Google Web Toolkit)——优点:全面的框架,良好的社区,可靠的基于Java的组件继承模型;缺点:可能无法经受时间的考验,另外,Java在客户端上的抽象有些笨拙。Google Closure——优点:很好的基于组件的UI组合系统。缺点:缺少UI绑定支持。Ember.js——优点:很丰富的模板系统,拥有复合视图和UI绑定;缺点:相对较新,文档不够完备。Angular.js——优点:对模板范围和控制器设计有很好的考虑,拥有依赖注入系统,支持丰富的UI绑定语法。缺点:代码的模块性不强,视图的模块化也不够。Batman.js——优点:代码清晰,绑定、持久化的方法简单;缺点:使用了单例控制器。

浅谈MVC,MVP,MVVM架构模式的区别和联系

MVC、MVP、MVVM这些模式是为了解决开发过程中的实际问题而提出来的,目前作为主流的几种架构模式而被广泛使用。一、MVC(Model-View-Controller)MVC是比较直观的架构模式,用户操作-》View(负责接收用户的输入操作)-》Controller(业务逻辑处理)-》Model(数据持久化)-》View(将结果反馈给View)。MVC使用非常广泛,比如JavaEE中的SSH框架(Struts/Spring/Hibernate),Struts(View, STL)-Spring(Controller, Ioc、Spring MVC)-Hibernate(Model, ORM)以及ASP.NET中的ASP.NET MVC框架,xxx.cshtml-xxxcontroller-xxxmodel。(实际上后端开发过程中是v-c-m-c-v,v和m并没有关系,下图仅代表经典的mvc模型)二、MVP(Model-View-Presenter)MVP是把MVC中的Controller换成了Presenter(呈现),目的就是为了完全切断View跟Model之间的联系,由Presenter充当桥梁,做到View-Model之间通信的完全隔离。.NET程序员熟知的ASP.NET webform、winform基于事件驱动的开发技术就是使用的MVP模式。控件组成的页面充当View,实体数据库操作充当Model,而View和Model之间的控件数据绑定操作则属于Presenter。控件事件的处理可以通过自定义的IView接口实现,而View和IView都将对Presenter负责。三、MVVM(Model-View-ViewModel)如果说MVP是对MVC的进一步改进,那么MVVM则是思想的完全变革。它是将逗数据模型数据双向绑定地的思想作为核心,因此在View和Model之间没有联系,通过ViewModel进行交互,而且Model和ViewModel之间的交互是双向的,因此视图的数据的变化会同时修改数据源,而数据源数据的变化也会立即反应到View上。这方面典型的应用有.NET的WPF,js框架Knockout、AngularJS等。参考资料:

之类的软件是用Winform写好还是用WPF写好

Winform与WPF采用两套完全不同的界面渲染方式。

前者是对传统windows界面元素的封装,通过gdi绘制。后者是全新的dx渲染绘制的界面,也脱离了对传统windows控件的依赖,没有历史包袱,理论上可以展现更炫酷的界面。

对初级程序员来说,没太大区别,都是利用设计器来设计界面,然后给控件编写事件代码。

对中、高级程序员来说,wpf需要学习xaml,这是一组全新的ui描述语言,特别是可以通过模板的嵌套实现复杂的元素,通过style实现类似css的功能,而且最重要的是WPF采用的MVVM的开发模式,这种数据驱动的开发模式目前是比较前沿的。

前途来说,两者必定还会长期共存。深入理解winform对理解windows一些内部机制有好处。好好学习wpf可以更方便过度到其他xaml相关技术,这是微软目前广泛使用的技术,比如接下来的windows通用应用。

个人建议:如果你是新手,就直接从WPF开始学起。

欢迎交流讨论:武汉蚂蹄软件服务中心

学什么框架最好,wpf,qt还是wtl等等,最流行那个那个用人最多

走Linux用qt.走Windows 用 WTLWTL完全开源,也可以修改源码,从长远角度来说肯定是WTL好。还有MFC也有必要学习下,不是要用他做东西,是理解他的框架。c#的wpf就算了。。。。。怎么说呢。。开发效率挺高,运行效率很低,封装得还不错,不过自由性不高,从长远发展来看不建议。

关于WPF mvvm的一些问题

model应该是数据的表示,viewmodel才是业务逻辑

一般是在viewmodel层,大多数都使用了实现了此接口的viewmodelbase基类

如果你的程序很简单,那通常只需要viewmodel,不需要model层了。

如果model不实现(因为有时候model不在你的控制范围之内),只有在ViewModel中封装,而且需要使用哪些属性就要重新让其实现inpc接口,确实比较麻烦。

最后,MVVM只是指导原则,不是规定(MVVM is a set of guidelines, not rules.),并没有标准说一定要怎么写的

MvvmLight和Prism哪个框架用的人多一些,或者说更好一点

没用过: 有段时间打算用的时候看过一些资料mvvmlight应该是个轻量级的mvvm框架,学习和小项目用比较多: 主要的是Caliburn 和 Prism



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3